﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Mantenimiento.Interfaz
{
    public partial class Marcas_Edit : System.Web.UI.Page
    {
        private int _id;
        private Negocio.Marca oMarca;
        private List<Negocio.Modelo> listaModelos;

        protected void Page_Load(object sender, EventArgs e)
        {
            obtenerParametro();
            if(!Page.IsPostBack)
                cargarDatos();
        }

        private void obtenerParametro()
        {
            try
            {
                _id = int.Parse(Request["ID"].ToString());
                oMarca = Negocio.Marca.obtener(_id);
            }
            catch (Exception ex)
            {
                _id = int.MinValue;
            }
        }

        private void cargarDatos()
        {
            hlModelos_add.Text = "Añadir modelos";
            hlModelos_add.ToolTip = string.Format("Añadir modelos a {0}", oMarca.Nombre); ;
            hlModelos_add.NavigateUrl = string.Format("~/Modelos_Add.aspx?ID={0}", _id.ToString());
            
            txtNombre.Text = oMarca.Nombre;
            listaModelos = Negocio.Modelo.obtenerxmarca(oMarca.Id);
            rpModelos.DataSource = listaModelos;
            rpModelos.DataBind();

            if (listaModelos.Count > 0)
                litEliminable.Text = "No se puede eliminar la marca hasta que se eliminen todos los modelos de la misma";
        }

        protected void btnGuardarDatos_Click(object sender, EventArgs e)
        {
            oMarca.Nombre = txtNombre.Text;
            oMarca.guardar();
            Response.Redirect("Marcas.aspx");
        }

        protected void rpModelos_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Literal ltNombre = (Literal)e.Item.FindControl("ltNombre");
                HyperLink hlEditar = (HyperLink)e.Item.FindControl("hlEditar");
                HyperLink hlEliminar = (HyperLink)e.Item.FindControl("hlEliminar");

                Negocio.Modelo row = (Negocio.Modelo)e.Item.DataItem;
                ltNombre.Text = row.Nombre.ToString();

                hlEditar.Text = "Editar";
                hlEditar.ToolTip = string.Format("Más información sobre {0}", row.Nombre); ;
                hlEditar.NavigateUrl = string.Format("~/Modelos_Edit.aspx?ID={0}", row.Id.ToString());

                hlEliminar.Text = "Eliminar";
                hlEliminar.ToolTip = string.Format("Eliminar {0}", row.Nombre); ;
                hlEliminar.NavigateUrl = string.Format("~/Modelos_Delete.aspx?ID={0}", row.Id.ToString());
            }
        }

        protected void btnEliminar_Click(object sender, EventArgs e)
        {
            if (listaModelos.Count == 0)
            {
                oMarca.eliminar();
                Response.Redirect("Marcas.aspx");
            }
        }
    }
}